package com.ruoyi.csdn.domain;

import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * CSDN文章发布对象 biz_csdn_article
 * 
 * @author ruoyi
 * @date 2024-12-30
 */
public class CsdnArticle extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** csdn账号 */
    @Excel(name = "csdn账号")
    private String csdnUsername;

    /** 文章标题 */
    @Excel(name = "文章标题")
    private String articleTitle;

    /** 文章内容 */
    @Excel(name = "文章内容")
    private String articleContent;

    /** 文章标签 */
    @Excel(name = "文章标签")
    private String articleTag;

    /** 文章摘要 */
    @Excel(name = "文章摘要")
    private String articleAbstract;

    /** 文章来源（1-原创2-转载3-翻译） */
    @Excel(name = "文章来源", readConverterExp = "1=-原创2-转载3-翻译")
    private String articleSource;

    /** 文章可见范围（1-全部可见2-仅我可见3-粉丝可见4-vip可见） */
    @Excel(name = "文章可见范围", readConverterExp = "1=-全部可见2-仅我可见3-粉丝可见4-vip可见")
    private String articleScope;

    /** 发布时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime releaseTime;

    /**TODO 时间接收格式化问题
     /** 起始时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startReleaseTime;

    /** 结束时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endReleaseTime;

    /** 发布状态 （0-未发布1-已发布） */
    @Excel(name = "发布状态 ", readConverterExp = "0=-未发布1-已发布")
    private String releaseStatus;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;




    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setCsdnUsername(String csdnUsername) 
    {
        this.csdnUsername = csdnUsername;
    }

    public String getCsdnUsername() 
    {
        return csdnUsername;
    }
    public void setArticleTitle(String articleTitle) 
    {
        this.articleTitle = articleTitle;
    }

    public String getArticleTitle() 
    {
        return articleTitle;
    }
    public void setArticleContent(String articleContent) 
    {
        this.articleContent = articleContent;
    }

    public String getArticleContent() 
    {
        return articleContent;
    }
    public void setArticleTag(String articleTag) 
    {
        this.articleTag = articleTag;
    }

    public String getArticleTag() 
    {
        return articleTag;
    }
    public void setArticleAbstract(String articleAbstract) 
    {
        this.articleAbstract = articleAbstract;
    }

    public String getArticleAbstract() 
    {
        return articleAbstract;
    }
    public void setArticleSource(String articleSource) 
    {
        this.articleSource = articleSource;
    }

    public String getArticleSource() 
    {
        return articleSource;
    }
    public void setArticleScope(String articleScope) 
    {
        this.articleScope = articleScope;
    }

    public String getArticleScope() 
    {
        return articleScope;
    }

    public LocalDateTime getReleaseTime() {
        return releaseTime;
    }

    public void setReleaseTime(LocalDateTime releaseTime) {
        this.releaseTime = releaseTime;
    }

    public void setReleaseStatus(String releaseStatus)
    {
        this.releaseStatus = releaseStatus;
    }

    public String getReleaseStatus() 
    {
        return releaseStatus;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public LocalDateTime getStartReleaseTime() {
        return startReleaseTime;
    }

    public void setStartReleaseTime(LocalDateTime startReleaseTime) {
        this.startReleaseTime = startReleaseTime;
    }

    public LocalDateTime getEndReleaseTime() {
        return endReleaseTime;
    }

    public void setEndReleaseTime(LocalDateTime endReleaseTime) {
        this.endReleaseTime = endReleaseTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("csdnUsername", getCsdnUsername())
            .append("articleTitle", getArticleTitle())
            .append("articleContent", getArticleContent())
            .append("articleTag", getArticleTag())
            .append("articleAbstract", getArticleAbstract())
            .append("articleSource", getArticleSource())
            .append("articleScope", getArticleScope())
            .append("releaseTime", getReleaseTime())
            .append("releaseStatus", getReleaseStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
